package modelos.pojos;

import modelos.daos.HabitacionDAO;
import modelos.daos.ReservaDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;

public class ReservaHabitacion {

    //Atributos propios de la clase
    private Date fechaProgIn;
    private Date fechaProgOut;
    private int id;
    private char estado;
    //Atributos de la relacion
    private Reserva reserva;
    private Habitacion habitacion;
    
    public ReservaHabitacion() {
        habitacion = new Habitacion();
        estado = 'a';
    }

    public ReservaHabitacion(Reserva reserva, Date fechaProgIn, Date fechaProgOut, Habitacion habitacion) {
        this.reserva = reserva;
        this.habitacion = habitacion;
        this.fechaProgIn = fechaProgIn;
        this.fechaProgOut = fechaProgOut;
        this.estado = 'a';
    }

    public Date getFechaProgIn() {
        return fechaProgIn;
    }

    public void setFechaProgIn(Date fechaProgIn) {
        this.fechaProgIn = fechaProgIn;
    }

    public Date getFechaProgOut() {
        return fechaProgOut;
    }

    public void setFechaProgOut(Date fechaProgOut) {
        this.fechaProgOut = fechaProgOut;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public char getEstado() {
        return estado;
    }

    public void setEstado(char estado) {
        this.estado = estado;
    }

    public Habitacion getHabitacion() {
        return habitacion;
    }

    public void setHabitacion(Habitacion habitacion) {
        this.habitacion = habitacion;
    }

    public Reserva getReserva() {
        return reserva;
    }

    public void setReserva(Reserva reserva) {
        this.reserva = reserva;
    }

    public static ReservaHabitacion cargarDatos(ResultSet in) throws SQLException {
        ReservaHabitacion out = new ReservaHabitacion();
        out.setId(in.getInt(1));
        out.setFechaProgIn(in.getDate(4));
        out.setFechaProgOut(in.getDate(5));
        out.setEstado(in.getString(6).charAt(0));
        out.setHabitacion(HabitacionDAO.consultar(in.getString(7)));
        out.setReserva(ReservaDAO.consultar(in.getString(8)));
        return out;
    }

    @Override
    public String toString() {
        return "ReservaHabitacion{" +id+ "fechaProgIn=" + fechaProgIn + "fechaProgOut=" + fechaProgOut + "id=" + id + "estado=" + estado + "reserva=" + reserva + "habitacion=" + habitacion + '}';
    }

}
